Exits aktivieren
Mit diesem Programm können Sie Felder zu einzelnen Tabelleneinträgen ändern. Das Programm eignet sich gut, wenn eine Matrix übersichtlich dargestellt und bearbeitet werden soll.
Beschreibung
Das folgende Programm wurde entwickelt, um Userexits zu verschiedenen Vertriebsbereichen einfach und übersichtlich aktivieren zu können.
Es sind jedoch auch noch andere Anwendungen denkbar, bei denen eine Matrix bearbeitet werden muss.
Der Status eines jeden Feldes wird farbig dargestellt. In diesem Beispiel kann ein Feld einen der drei folgenden Status haben:
- Rot: Inaktiv
- Gelb: gesperrt
- Grün: Aktiv
Der Wechsel des Status kann beliebig erweitert werden. Im einfachsten Fall kann ein Feld “Aktiv” oder “Inaktiv” sein.
|
Hinweis
Wie Sie die geänderten Einträge in einen Transportauftrag übernehmen können, erfahren Sie hier: Tabelleneinträge transportieren
GUI Status
Sie müssen zur vollen Funktionalität noch den PF-STATUS ‘LIST’ anlegen. Klicken Sie hierzu doppelt auf ‘LIST’. Mischen Sie die List-Funktionen ein (Vorlage abgleichen) und legen Sie auf die Tasten F5 den Funktionscode “LINKS” und auf und F6 den Funktionscode “RECHTS”. Zudem müssen Sie noch den Sichern-Knopf aktivieren, indem Sie den Funktionscode “SAVE” dort eintragen.
Coding
REPORT ZZEXITLIST NO STANDARD PAGE HEADING LINE-SIZE 332.
TYPES:
*** Tabelle mit den zu aktivierenden Einträgen/ Feldern
BEGIN OF ZVEXIT45,
VKORG TYPE VKORG, “Schlüsselfeld 1
VTWEG TYPE VTWEG, “Schlüsselfeld 2
SPART TYPE SPART, “Schlüsselfeld 3
AUART TYPE AUART, “Schlüsselfeld 4
*** –> Exits
01, 02, 03, 04, 05, 06, 07, 08, 09, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99,
*** Tabelleneintrag geändert?
UPDKZ TYPE C,
END OF ZVEXIT45.
*** Variablen
DATA: GV_FELD(50) TYPE C,
GV_VALUE(50) TYPE C,
GV_STACO TYPE I,
GV_INDEX TYPE I,
GV_TABIX TYPE I,
GV_EXIT(2) TYPE N,
GV_STATUS TYPE C,
*** Tabelle
STRUC TYPE ZVEXIT45 OCCURS 0 WITH HEADER LINE.
*** Konstanten
*** Bitte an geänderte Tabellenstruktur anpassen!!
CONSTANTS:
V TYPE C VALUE ‘|’,
GK_FIRST_COL TYPE I VALUE 25,
GK_SCROLL_BOUNDARY TYPE I VALUE 26,
GK_COL_ACTIVE TYPE I VALUE 5,
GK_COL_INACTIVE TYPE I VALUE 6,
GK_COL_TEMP TYPE I VALUE 3,
GK_NUMBER_OF_EXITS TYPE I VALUE 99,
GK_NUMBER_OF_KEY_FIELDS TYPE I VALUE 5.
*** Feldsymbol
FIELD-SYMBOLS <EXIT>.
START-OF-SELECTION.
*** Dummy Einträge erzeugen
APPEND ‘000101’ TO STRUC.
APPEND ‘001101’ TO STRUC.
APPEND ‘003310’ TO STRUC.
APPEND ‘150050’ TO STRUC.
APPEND ‘160099’ TO STRUC.
APPEND ‘800011’ TO STRUC.
*** Ausgabe der Liste
PERFORM LISTE.
TOP-OF-PAGE.
*** Top of Page: Überschrift ausgeben
PERFORM TOP.
TOP-OF-PAGE DURING LINE-SELECTION.
*** Top of Page: Überschrift ausgeben
PERFORM TOP.
AT LINE-SELECTION.
*** Klick auf ein Feld:
GET CURSOR FIELD GV_FELD VALUE GV_VALUE.
GV_STACO = SY-STACO.
GV_EXIT = ( SY-CUCOL – GK_FIRST_COL + SY-STACO ) / 3.
IF GV_TABIX > 0.
*** Einzelnen Exit aktivieren
READ TABLE STRUC INDEX GV_TABIX.
IF SY-SUBRC = 0.
CONCATENATE ‘STRUC-‘ GV_EXIT INTO GV_FELD.
ASSIGN (GV_FELD) TO <EXIT>.
CASE <EXIT>.
WHEN SPACE.
*** Wechseln zu “Eintrag vorgemerkt”
<EXIT> = ‘*’.
MESSAGE S000(VZ) WITH ‘Exit’ GV_EXIT ‘Aktivierung vorgemerkt’.
WHEN ‘*’.
*** Wechseln zu “Exit aktiv”
<EXIT> = ‘X’.
MESSAGE S000(VZ) WITH ‘Exit’ GV_EXIT ‘aktiviert’.
WHEN ‘X’.
*** Wechseln zu “Exit deaktiv”
<EXIT> = SPACE.
MESSAGE S000(VZ) WITH ‘Exit’ GV_EXIT ‘deaktiviert’.
ENDCASE.
SPLIT GV_FELD AT ‘-‘ INTO GV_FELD GV_FELD.
*** Eintrag geändert
STRUC-UPDKZ = ‘U’.
*** Eintrag ändern
MODIFY STRUC INDEX GV_TABIX TRANSPORTING UPDKZ (GV_FELD).
CLEAR GV_TABIX.
ENDIF.
ELSE.
*** Gesamte Spalte umsetzen
GV_STATUS = ‘$’.
LOOP AT STRUC.
CONCATENATE ‘STRUC-‘ GV_EXIT INTO GV_FELD.
ASSIGN (GV_FELD) TO <EXIT>.
IF GV_STATUS = ‘$’.
CASE <EXIT>.
WHEN SPACE.
GV_STATUS = ‘*’.
WHEN ‘*’.
GV_STATUS = ‘X’.
WHEN ‘X’.
GV_STATUS = SPACE.
ENDCASE.
ENDIF.
<EXIT> = GV_STATUS.
SPLIT GV_FELD AT ‘-‘ INTO GV_FELD GV_FELD.
STRUC-UPDKZ = ‘U’.
MODIFY STRUC TRANSPORTING UPDKZ (GV_FELD).
ENDLOOP.
ENDIF.
*** Listausgabe
PERFORM LISTE.
AT USER-COMMAND.
*** Benutzerkommando
CASE SY-UCOMM.
WHEN ‘RECHTS’.
*** 10 Spalten nach rechts scrollen
SCROLL LIST RIGHT BY 60 PLACES.
WHEN ‘LINKS’.
*** 10 Spalten nach links scrollen
SCROLL LIST LEFT BY 60 PLACES.
WHEN ‘SAVE’.
*** Eintrag sichern
PERFORM SICHERN.
ENDCASE.
*———————————————————————*
* FORM LISTE *
*———————————————————————*
FORM LISTE.
*** Eigener List-Status
SET PF-STATUS ‘LIST’.
*** Ausgabe der Tabelle
LOOP AT STRUC.
GV_TABIX = SY-TABIX.
*** Keyfelder
WRITE: / V, STRUC-VKORG,
V, STRUC-VTWEG,
V, STRUC-SPART,
V, STRUC-AUART, V NO-GAP.
*** Index: Anzahl Keyfelder
GV_INDEX = GK_NUMBER_OF_KEY_FIELDS.
DO GK_NUMBER_OF_EXITS TIMES.
*** Exit zuweisen
ASSIGN COMPONENT GV_INDEX OF STRUCTURE STRUC TO <EXIT>.
*** Exit ausgeben
PERFORM WRITE_EXIT USING <EXIT>.
ADD 1 TO GV_INDEX.
ENDDO.
HIDE: GV_TABIX, STRUC.
ENDLOOP.
CLEAR: STRUC, GV_TABIX.
ULINE.
*** Zur Spalte scrollen, die vor LINE-SELECTION aktiv war
SCROLL LIST TO COLUMN GV_STACO INDEX 1.
ENDFORM.
*———————————————————————*
* FORM WRITE_EXIT *
*———————————————————————*
FORM WRITE_EXIT USING FLAG TYPE C.
DATA LV_COLOR TYPE I.
CASE FLAG.
WHEN ‘X’.
*** Feld ist aktiv
LV_COLOR = GK_COL_ACTIVE.
WHEN ‘*’.
*** Feld ist vorgemerkt
LV_COLOR = GK_COL_TEMP.
WHEN ‘ ‘.
*** Feld ist deaktiviert
LV_COLOR = GK_COL_INACTIVE.
ENDCASE.
*** Ausgabe
WRITE: ‘ ‘ COLOR = LV_COLOR HOTSPOT ON NO-GAP, V NO-GAP.
ENDFORM.
*———————————————————————*
* FORM TOP *
*———————————————————————*
FORM TOP.
*** Seitenindex wieder zurücksetzen, damit keine Verzweigungsliste
*** erzeugt wird
SY-LSIND = 0.
*** Keyfelder nicht scrollen
SET LEFT SCROLL-BOUNDARY COLUMN GK_SCROLL_BOUNDARY.
*** Überschrift
ULINE.
FORMAT COLOR COL_HEADING.
WRITE: /01 V, ‘VKO’,
AT 08 V, ‘VTW’,
AT 13 V, ‘Sp’,
AT 18 V, ‘AArt’,
AT 25 V NO-GAP.
DO GK_NUMBER_OF_EXITS TIMES.
GV_INDEX = SY-INDEX.
*** Ausgabe der Feldnummer
WRITE: (2) GV_INDEX NO-GAP HOTSPOT ON, V NO-GAP.
*** GGfs. zusätzliche Info zum Exit ermitteln und mittels QUICKINFO
*** zur Verfügung stellen
HIDE: GV_INDEX.
ENDDO.
FORMAT COLOR OFF.
ULINE.
ENDFORM.
*———————————————————————*
* FORM SICHERN *
*———————————————————————*
FORM SICHERN.
LOOP AT STRUC WHERE UPDKZ <> SPACE.
WRITE / STRUC.
ENDLOOP.
ENDFORM.
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024